package listener;

import JDBCUtil.JDBCUtil;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

public class OneListener implements ServletContextListener {
    // 在Tomcat启动时，预先创建20个Connection，在userDao.add方法执行时
    // 将事先创建好的connection交给add方法
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        JDBCUtil util = new JDBCUtil();
        Map map = new HashMap();
        for (int i = 1; i <= 20; i++){
            Connection conn = util.getConnection();
            System.out.println("在Http服务器启动时，创建Connection" + conn);
            map.put(conn, true);
        }
        // 为了在Http服务器运行期间，一直都可以使用20个Connection，将Connection保存到
        // 全局作用域对象中
        ServletContext application = sce.getServletContext();
        application.setAttribute("key1", map);
    }// map被销毁
    //  在Http服务器关闭时刻，将全局作用域对象20个Connection销毁
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        ServletContext application = sce.getServletContext();
        Map map = (Map)application.getAttribute("key1");
        for (Object key: map.keySet()){
            if (key != null){
                System.out.println("兄弟们，我" + key + "先行一步，20年后老子还是一条好汉");
            }
        }
    }
}
